home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / infosrvr / doc / www_talk.arc / 000322_timbl@www3.cern.ch _Fri Nov 13 16:56:56 1992.msg < prev    next >
Internet Message Format  |  1992-11-30  |  8KB

  1. Return-Path: <timbl@www3.cern.ch>
  2. Received: from dxmint.cern.ch by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  3.     id AA14421; Fri, 13 Nov 92 16:56:56 MET
  4. Received: by dxmint.cern.ch (dxcern) (5.57/3.14)
  5.     id AA15413; Fri, 13 Nov 92 17:09:20 +0100
  6. Received: by www3.cern.ch (NX5.67c/NX3.0S)
  7.     id AA01410; Fri, 13 Nov 92 17:04:45 +0100
  8. Date: Fri, 13 Nov 92 17:04:45 +0100
  9. From: Tim Berners-Lee <timbl@www3.cern.ch>
  10. Message-Id: <9211131604.AA01410@www3.cern.ch>
  11. Received: by NeXT.Mailer (1.87.1)
  12. Received: by NeXT Mailer (1.87.1)
  13. To: Dan Connolly <connolly@pixel.convex.com>
  14. Subject: OO WWW:  Re: indexes as links rather than documents 
  15. Cc: www-talk@nxoc01.cern.ch
  16. Reply-To: timbl@nxoc01.cern.ch
  17.  
  18. > Date: Thu, 12 Nov 92 14:41:02 CST
  19. > From: Dan Connolly <connolly@pixel.convex.com>
  20.  
  21.  
  22. > >How about ...using
  23. > >
  24. > >> <dd><a HREF="wais://quake.think.com/INFO" RELATIONSHIP=SEARCHME>search</a>
  25.  
  26. > Sure... I don't have any strong opinions about the syntax, except that
  27. > RELATIONSHIP is longer than 8 characters, and that will be an issue
  28. > with some SGML parsers.
  29.  
  30. Of course. We could call it REL.  (That's what you get with IBM-derived  
  31. products ;-)
  32.  
  33. > This opens up the discussion of link semantics from a while ago. Some
  34. > folks suggested a TYPE or ACTION or RELATIONSHIP attribute on anchors:
  35.  
  36. > SEE    (the default) see HREF, i.e. this anchor refers to HREF
  37. > INCLUDE    include HREF at this point in the document (for quoting)
  38. > REPLACE    replace the anchor text with HREF (another quoting mechanism)
  39. > AUGMENT    display HREF along with this document (for figures, etc.)
  40. > SEARCH    search HREF and display the results
  41. >
  42. > You could have zillions of options here: DEFINE (HREF defines this anchor),
  43. > UPDATE (HREF is a new version of this document), TRANSLATE (HREF is
  44. > some converted form of this document). But I suggest we call the attribute
  45. > ACTION, and only create a new one when there is a user-interface impact.
  46. > So the ACTION attribute is a hint from the author on how to display
  47. > the document. That way, all the DEFINE, UPDATE, TRANSLATE, etc fall under
  48. > SEE above.
  49.  
  50. There seem to be two classes of attribute we are talking about here.
  51. Some attributes express a relationship between the documents (or
  52. relationships between objects described by the documents). These are
  53. relationships like
  54.  
  55.     A    is a previous version of    B
  56.     A    describes the author of        B
  57.     
  58. etc.  These add semantics to the web, allow interesting navigational
  59. functions.
  60.  
  61. Other attributes are directions to the client app., to so something:
  62.  
  63.   When you display A, also display B
  64.   When you display A, embed B
  65.   When you print A, also print B
  66.   When you follow this link, embed B
  67.   When you follow this link, search B
  68.   
  69.  
  70. Let's bear in mind the idea of moving toward arbitrary objects.
  71. The OO paradigm (the current one, not the only possible one)
  72. has objects which each have a class, which has a set of
  73. methods, each of which has a set of parameters, each of which
  74. has a class. Ok?
  75.  
  76. Suppose documents are objects. We have two methods now,
  77.  
  78.     render()      returning HTML
  79.     search(text)    returning HTML
  80.  
  81. each taking the object ID as an implicit parameter. That's OK.
  82. These are neat functions. Suppose we generalize.
  83.  
  84. First generalization: the render():HTML is only one of many functions
  85. which the object supports. The format negotiation says
  86. "I want render()* where * is preferably ....".
  87.  
  88. In this context the <ISINDEX> tag means "The class of this object
  89. supports search(text):HTML method".  The SEARCHME link
  90. looks more like some advance notice type information [[yuk -- I hate
  91. having info in two places... links can get out of date -- but never mind]]
  92.  
  93.     "The object references supports search()"
  94.     
  95. plus also the client advice 
  96.  
  97.  
  98.   "When you follow this link, search B"
  99.  
  100. I would separate these two things, personally myself. the first is useful
  101. for deciding on the icon to display, without the second which coud
  102. independently be any of the other client hints mentioned above.
  103.  
  104. In this light, it would seem there are some obvious extentions!
  105. Let's skip the debate about whether you want the client advice attribute
  106. to make an automatic search (OK, let's put it in, no harm in it)
  107. and focus on the type declaration. Whether it is declariung stuff
  108. about the document itself or a related document is a trivial difference,
  109. the difference between the LINK and the A tags, in fact.
  110.  
  111. So lets generalize ISINDEX. We have a choice. We can declare the class
  112. (or any superclass) of an object. Or we can declare a method. In fact,
  113. in the multiple inheritance view, these are very similar as you can
  114. imagine a class which only supports one method, and then construct
  115. classes out of inheritance only from those classes. So declaring a
  116. class (set of methods) is more general than declaring a method.
  117.  
  118. An immediate application of this will be declaring things like
  119. Z39.50 objects which support various search methods with all kinds
  120. of different input parameters.  But one wouldn't of couse stop there....
  121.  
  122. Classes, like representations, would have to be registered. Either registered
  123. or defined in a suitable language by a document. Ha! we know how to handle  
  124. that.. we don't even have to worry about the class description language
  125. because we can apply format negotiation to that.  In fact, registreation
  126. of a class with IANA would involve storing the class description in a document  
  127. was in a well-defined place, and of which everyone would take copies.
  128. I mean like maybe even at compile time for classic classes.
  129. (I would expect that a convention for getting an icon graphic from
  130. the same directory as the class description would be kinda nice.)
  131.  
  132. So a document start with information about itself
  133.  
  134.     <!doctype HTML USDN=x.500:/ch/cern/cn/92/tbl
  135.     URL=http://info.cern.ch/tbl/mydoc.html>
  136.     URL=ftp://info.cern.ch/pub/www/doc/mydoc.html>
  137.  
  138.     <type USDN=x.500:/internet/iana/www/textindex
  139.     URL=http://www.iana.net/class/www/textindex.asn1
  140.     ACTION=textsearch>
  141.  
  142.     Hi this is an index of all the widgets in the wdgetbox.
  143.  
  144. We need one (1) language to start with for defining the classes.
  145. ASN/1 or a SGML version of ASN/1? So long as it can include
  146. inheritance from other classes using a hypertext reference.
  147.  
  148. We still require all documents to be renderable, which just means
  149. that all objects support render() returning either HTML or
  150. ascii.
  151.  
  152.  
  153. > >The argument for the W3 model is that often the user will want to search
  154. > >or not search a single index, and he doesn't want two operations: one to
  155. > >select the fact that he wants to search (click) and one to search
  156. > >(typetypetyepe return).  He just wants one.
  157.  
  158. > But in practice, it's the same: if I quote a wais source from this
  159. > mail message, you'll have to 1) traverse the link to the index,
  160. > and 2) search the index.
  161.  
  162. Like with the chicken and the egg, it depends when you start counting the
  163. clicks.
  164.  
  165.  
  166.  
  167.  
  168.  
  169. > It makes sense to me to have the links mirror protocol transactions.
  170. > In other words, if we have a two step protocol:
  171.  
  172. > client: "I want to do a search."
  173. > server: "OK... here's the query form."
  174. > client: "Here's the filled-out query form."
  175. > server: "OK... here are the results."
  176.  
  177. Isn't that slower? In fact what happens is the user thinks like
  178. that, but the client, knowing that a search is possible, happens
  179. to put up the search panel.  Could we in fact use a 
  180.  
  181. "when you display A, display B too" link, here?
  182.  
  183.  
  184. >... 
  185.  
  186. > I don't think the network will ever be a non-issue.
  187.  
  188. I agree. Speed of light, for one thing.
  189.  
  190.  
  191. > Sure... we need to treat <ISINDEX> as shorthand for
  192. > <A NAME="k" HREF=_this_document_ ACTION=SEARCH></a>
  193.  
  194. > As for making it global to the document, you could just treat the
  195. > first SEARCH anchor as the default index to search.
  196.  
  197. I would prefer to use a document-wide LINK element
  198. in the header as a document-wide analogue of the A element
  199. but that's a detail.
  200.  
  201.     Tim
  202.     
  203.